package com.soen341.service;

import java.util.Set;

import com.soen341.model.Constraints;
import com.soen341.model.Schedule;

public interface ScheduleService
{
	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a collection of schedules upon generation is complete.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public Set<Schedule> generateSchedule(Constraints constraints);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Saves schedule with specified schedule ID.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public Boolean saveSchedule(Schedule schedule);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Saves schedule with specified schedule ID.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public Boolean saveScheduleById(String scheduleId);


	// --------------------------------------------------------------------------------------------------------------------------------
	/**
	 * Returns a scheduled by specified scheduleId.
	 */
	// --------------------------------------------------------------------------------------------------------------------------------
	public Schedule getScheduleById(String scheduleId);
}